<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #btn {
        width: 200px;
        height: 200px;
        background-color: red;
        animation: move 1s ease;
      }
      #btn:hover {
        animation-play-state: paused;
      }
      @keyframes move {
        0% {
          transform: rotateZ(0);
        }
        50% {
          transform: rotateZ(180deg);
        }
        100% {
          transform: rotateZ(360deg);
        }
      }
    </style>
  </head>
  <body>
    <!-- 
    Object.create()和Object.setPrototypeOf()
      都是将一个对象指向另一个对象的原型
      例如：
        将Array的原型指向newArrayProtype的隐式原型
        const newArrayProtype = Object.create(Array.prototype);
        相当于 newArrayProtype.__proto__ = Array.prototype
      他们的不同点是
        Object.create()会将Cat.prototype清空为干净的原型,然后去继承,
          或者这么理解Object.create() 方法创建一个新对象，使用现有的对象来提供新创建的对象的__proto__
        而setPrototypeOf 不会创建一个新的对象而是在原来的对象的基础上，将现有的对象指向给原来对象的__proto__
        const data = {a:2}
        Object.setPrototypeOf(data,newProtype)
   -->
    <div>
      <div id="btn"></div>
    </div>
  </body>
</html>
